1 module directx.d3d10misc;
2 //////////////////////////////////////////////////////////////////////////////
3 //
4 //  Copyright (c) Microsoft Corporation.  All rights reserved.
5 //
6 //  File:       D3D10Misc.h
7 //  Content:    D3D10 Device Creation APIs
8 //
9 //////////////////////////////////////////////////////////////////////////////
10 
11 version(Windows):
12 version(Direct3D_10):
13 
14 public import directx.d3d10;
15 
16 alias DWORD D3D10_DRIVER_TYPE;
17 enum : D3D10_DRIVER_TYPE {
18     D3D10_DRIVER_TYPE_HARDWARE   = 0,
19     D3D10_DRIVER_TYPE_REFERENCE  = 1,
20     D3D10_DRIVER_TYPE_NULL       = 2,
21     D3D10_DRIVER_TYPE_SOFTWARE   = 3,
22     D3D10_DRIVER_TYPE_WARP       = 5
23 }
24 
25 ///////////////////////////////////////////////////////////////////////////
26 // D3D10CreateDevice
27 // ------------------
28 //
29 // pAdapter
30 //      If NULL, D3D10CreateDevice will choose the primary adapter and
31 //      create a new instance from a temporarily created IDXGIFactory.
32 //      If non-NULL, D3D10CreateDevice will register the appropriate
33 //      device, if necessary (via IDXGIAdapter::RegisterDrver), before
34 //      creating the device.
35 // DriverType
36 //      Specifies the driver type to be created: hardware, reference or
37 //      null.
38 // Software
39 //      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
40 //      non-Software driver types.
41 // Flags
42 //      Any of those documented for D3D10CreateDevice.
43 // SDKVersion
44 //      SDK version. Use the D3D10_SDK_VERSION macro.
45 // ppDevice
46 //      Pointer to returned interface.
47 //
48 // Return Values
49 //  Any of those documented for
50 //          CreateDXGIFactory
51 //          IDXGIFactory::EnumAdapters
52 //          IDXGIAdapter::RegisterDriver
53 //          D3D10CreateDevice
54 //
55 ///////////////////////////////////////////////////////////////////////////
56 
57 __gshared _D3D10CreateDevice D3D10CreateDevice;
58 
59 extern (Windows) {
60     alias _D3D10CreateDevice = HRESULT function(IDXGIAdapter      pAdapter,
61                                                 D3D10_DRIVER_TYPE DriverType,
62                                                 HMODULE           Software,
63                                                 UINT              Flags,
64                                                 UINT              SDKVersion,
65                                                 ID3D10Device      *ppDevice);
66 }
67 
68 ///////////////////////////////////////////////////////////////////////////
69 // D3D10CreateDeviceAndSwapChain
70 // ------------------------------
71 //
72 // ppAdapter
73 //      If NULL, D3D10CreateDevice will choose the primary adapter and
74 //      create a new instance from a temporarily created IDXGIFactory.
75 //      If non-NULL, D3D10CreateDevice will register the appropriate
76 //      device, if necessary (via IDXGIAdapter::RegisterDrver), before
77 //      creating the device.
78 // DriverType
79 //      Specifies the driver type to be created: hardware, reference or
80 //      null.
81 // Software
82 //      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
83 //      non-Software driver types.
84 // Flags
85 //      Any of those documented for D3D10CreateDevice.
86 // SDKVersion
87 //      SDK version. Use the D3D10_SDK_VERSION macro.
88 // pSwapChainDesc
89 //      Swap chain description, may be NULL.
90 // ppSwapChain
91 //      Pointer to returned interface. May be NULL.
92 // ppDevice
93 //      Pointer to returned interface.
94 //
95 // Return Values
96 //  Any of those documented for
97 //          CreateDXGIFactory
98 //          IDXGIFactory::EnumAdapters
99 //          IDXGIAdapter::RegisterDriver
100 //          D3D10CreateDevice
101 //          IDXGIFactory::CreateSwapChain
102 //
103 ///////////////////////////////////////////////////////////////////////////
104 
105 __gshared _D3D10CreateDeviceAndSwapChain D3D10CreateDeviceAndSwapChain;
106 
107 extern (Windows) {
108     alias _D3D10CreateDeviceAndSwapChain = HRESULT function(
109         IDXGIAdapter pAdapter,
110         D3D10_DRIVER_TYPE DriverType,
111         HMODULE Software,
112         UINT Flags,
113         UINT SDKVersion,
114         DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
115         IDXGISwapChain* ppSwapChain,
116         ID3D10Device* ppDevice);
117 }
118 
119 ///////////////////////////////////////////////////////////////////////////
120 // D3D10CreateBlob:
121 // -----------------
122 // Creates a Buffer of n Bytes
123 //////////////////////////////////////////////////////////////////////////
124 
125 __gshared _D3D10CreateBlob D3D10CreateBlob;
126 
127 alias _D3D10CreateBlob = HRESULT function(SIZE_T NumBytes, LPD3D10BLOB ppBuffer);